package com.cly.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cly.entity.Problem;
import com.cly.entity.ProblemBank;
import com.cly.result.JsonRequest;
import com.cly.vo.ProblemBankVo;

import java.util.List;

/**
 * 题库表 服务类
 *
 * @author by 春风能解释
 * <p>
 * 2024-06-05
 */
public interface IProblemBankService extends IService<ProblemBank> {

    /**
     * 条件查看所有题库
     *
     * @param problemBank 条件
     * @return JSON
     */
    JsonRequest<List<ProblemBank>> lookAllProblemBank(ProblemBank problemBank);

    /**
     * 查看题库
     *
     * @param current     页码
     * @param size        页长
     * @param problemBank 条件
     * @return JSON
     */
    JsonRequest<List<ProblemBankVo>> lookProblemBank(Integer current, Integer size, ProblemBank problemBank);

    /**
     * 添加题库
     *
     * @param problemBank 题库
     * @return JSON
     */
    JsonRequest<Integer> addProblemBank(ProblemBank problemBank);

    /**
     * 修改题库
     *
     * @param problemBank 题库
     * @return JSON
     */
    JsonRequest<Integer> updateProblemBank(ProblemBank problemBank);

    /**
     * 删除题库
     *
     * @param ids 题库id
     * @return JSON
     */
    JsonRequest<Integer> deleteProblemBank(List<Long> ids);

    /**
     * 删除题目并更新题库数据
     *
     * @param problems 题目列表
     * @return JSON
     */
    JsonRequest<Boolean> removeProblem(List<Problem> problems);

    /**
     * 更新题库的分数及其个数信息
     *
     * @param problem 题目实体
     * @return JSON
     */
    JsonRequest<Boolean> insertProblem(Problem problem);
}
